package metro.sato;


/**
 * Clase principal que ejecuta la funcionalidad del programa
 * 
 * @author finrox
 */
public class Proceso {

	private static Proceso exe = new Proceso();

	/**
	 * Funcion principal que ejecuta la funcionalidad del programa
	 * 
	 * @param args   argumentos que se le pasan por la linea de comandos al programa 
	 * 					trenes 		nuemro de trenes en el metro 
	 * 					estaciones	numero de estaciones en el metro 
	 * 					fichero 	fichero para SATO
	 *                  eo			incluyo condicion de estacion ocupada
	 */
	public static void main(String[] args) {

		Integer trenes = null;
		Integer estaciones = null;
		String ficheroSalida = null;
		Boolean estacionOcupada = false;

		if (args.length < 3 || args.length > 4) {
			exe.mostrarUso();
			return;
		}

		trenes = Integer.valueOf(args[0]);
		estaciones = Integer.valueOf(args[1]);
		ficheroSalida = args[2];
		if (args.length == 4) 
			if (args[3].toLowerCase().compareTo("eo") == 0)
				estacionOcupada = true;

		exe.ejecutar(trenes, estaciones, ficheroSalida, estacionOcupada);

	}

	// Llamada a la clase para generar las clausulas SATO
	private void ejecutar(Integer t, Integer e, String f, boolean eo) {

		GeneraClausula gC = new GeneraClausula(t, e, f, eo);
		gC.genera();

	}

	// Muestar como se usa el programa
	private void mostrarUso() {
		System.out.println("Uso:  Proceso trenes estaciones fichero [\"eo\"]");
		System.out.println("   trenes   	numero de trenes en el metro");
		System.out.println("   estaciones 	numero de estaciones en el metro");
		System.out.println("   fichero      fichero para SATO");
		System.out.println("   eo	        literal para incluir condicion de estacion ocupada");
	}

}
